home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / Other / insert-middle-note < prev    next >
Lisp/Scheme  |  1998-10-22  |  2KB  |  31 lines

  1. insert-middle-note melody1 melody2
  2. &optional (type :round) (seed nil)
  3. legal types: :round :rnd :up :down
  4.  
  5. inserts a new melody between melody1 and melody2
  6. with different rounding-options.
  7. :up equals ceiling
  8. :down equals floor
  9. :round equals round &
  10. :rnd picks randomly among the three (:up :down :round).
  11. :seed sets random-seed only if type is :rnd
  12.  
  13. (insert-middle-note '(a b c) '(f g h))
  14. -->(c e e)
  15. (insert-middle-note '(a b c) '(f g h) :up)
  16. -->(d e f)
  17. (insert-middle-note '(a b c) '(f g h) :down)
  18. -->(c d e)
  19. (insert-middle-note '(a b c) '(f g h) :rnd 0.1)
  20. -->(d e e)
  21.  
  22. (setq melo1 (noergaard-infinity-series 89 '(a b)))
  23. (setq melo2 (random-outside (symbol-transpose 12 melo1)
  24.  3 :seed 0.1))
  25. (setq melo3 (insert-middle-note melo1 melo2 :round))
  26. (setq melo4 (insert-middle-note melo1 melo3 :rnd 0.1))
  27. (setq melo5 (insert-middle-note melo2 melo3 :rnd 0.3))
  28.  
  29. (setq chords (mapcar #'compress (mapcar #'list melo1 melo4   melo3 melo5 melo2)))
  30. ->(adfik beimq -bcehk cgjmq behkn adhko -cbdgi dhknq -bcgko cgkor adgjl bdgik cfilo -bcgjn -d-bcfi ehkmp beilo acfhk -cbfim dgilo adgjm bfimp -bcehj cehjm -caceh dgknq bdgjm adgjm dgiln -ccfjm -e-cacf fhkmo -bcehk cegil adgkn beimq cehkm -bcgjm -dbehk eimqt adfik beilo -bcfil cegjl bfilo aehko -cbehk dgknq cfjmq -bcehj -dbehk ehknq -bdgjm cfiln adgjm begik -daehl egikn cfilo -bcfil egikn -dadgj -f-cbeh gjmpr bfimp adgjm -cbeil dhkos adgkn beilo -bcegi cehkm -cadgi dgkos begil aeilp dhkor -ccgjn -e-bdgk fjmps acfik behkn -bdgjm cfilo bdgil adgil -cbegj dgjmp -bcgjm)
  31.